|
Cytosim
PI
Cytoskeleton Simulator
|
The FiberSet stores Fiber, and derived classes. Algorithms that specifically deal with Fibers should be contained here.
Public Member Functions | |
| FiberSet (Simul &s) | |
| creator | |
| virtual | ~FiberSet () |
| destructor | |
| std::string | kind () const |
| identifies the class | |
| Property * | newProperty (const std::string &kind, const std::string &name, Glossary &) const |
create a new property for class kind with given name | |
| Object * | newObject (const std::string &kd, const std::string &nm, Glossary &opt) |
| create a new Fiber from the corresponding property More... | |
| ObjectList | newObjects (const std::string &kd, const std::string &nm, Glossary &opt) |
| create new Fibers | |
| Object * | newObjectT (const Tag tag, int prop_index) |
| construct Fiber More... | |
| Fiber * | first () const |
| first Fiber | |
| Fiber * | last () const |
| last Fiber | |
| Fiber * | find (Number n) const |
| return pointer to the Object of given inventory Number, or zero if not found | |
| void | cutAlongPlane (Vector const &n, real a, bool(*func)(Object const *, void *), void *) |
| Cut all segments intersecting the plane defined by n.x + a = 0 More... | |
| void | step () |
| Monte-Carlo step for every Fiber. More... | |
| void | foldPosition (const Modulo *) const |
| modulo the position (periodic boundary conditions) | |
| void | uniFiberSites (Array< FiberBinder > &, const real spread) const |
set random sites along the fibers, separated on average by spread More... | |
| int | count (bool(*func)(Fiber const *, void *), void *) const |
| number of Fiber that do not belong to an Organizer | |
| real | totalLength () const |
| total length of Fiber | |
| real | totalLength (FiberProp const *) const |
| total length of Fiber that have ( FiberProp == p ) | |
| void | infoLength (unsigned int &cnt, real &avg, real &dev, bool(*func)(Fiber const *, void *)=0, void *=0) const |
| calculate: number of fibers, mean and standard-deviation of fiber length | |
| void | infoSegments (unsigned &cnt, unsigned &joints, unsigned &kinks, real &, real &, bool(*func)(Fiber const *, void *)=0, void *=0) const |
| calculate: number of fibers, number of joints and number of kinks | |
| real | infoDirection (Vector &G, Vector &D, Vector &N, bool(*func)(Fiber const *, void *)=0, void *=0) const |
| calculate: center of gravity G, average direction D, average nematic direction N More... | |
| void | infoIntersections (int &np, int &na, Vector const &n, real a) const |
| Count Fibers intersecting the plane defined by n.x + a = 0 More... | |
| void | infoSpindle (real &ixa, real &ixs, Vector const &n, real a, real m, real da) const |
| Calculate spindle indices. More... | |
| void | infoTension (unsigned int &, real &hten, Vector const &n, real a) const |
| sum Lagrange multipliers for segments that intersect the plane n.x + a = 0 More... | |
| void | infoTension (unsigned int &, real &hten) const |
| sum Lagrange multipliers for all fibers More... | |
| void | infoRadius (unsigned int &, real &rad) const |
| Calculate averaged distance from origin - for all model points. | |
| void | infoRadius (unsigned int &, real &rad, FiberEnd) const |
| Calculate averaged distance from origin - for fiber ends. | |
Public Member Functions inherited from ObjectSet | |
| virtual void | freeze () |
| transfer all nodes to list ice | |
| virtual void | thaw (bool erase) |
| erase objects, or put them back in normal list | |
| ObjectSet (Simul &s) | |
| creator | |
| virtual | ~ObjectSet () |
| destructor | |
| virtual ObjectList | newPlacedObjects (const std::string &kind, const std::string &name, Glossary &opt) |
| create new objects, translate and rotate them according to specifications in opt More... | |
| virtual void | add (Object *) |
| register Object, and add it at the end of the list | |
| void | add (ObjectList &) |
| remove Object in ObjectList | |
| virtual void | remove (Object *) |
| remove Object | |
| void | remove (ObjectList &) |
| remove Object in ObjectList | |
| virtual void | relink (Object *) |
| unlink and relink object. This places it last in the list More... | |
| void | erase (Object *) |
| remove Object, and delete it | |
| virtual void | erase () |
| delete all Objects in list and forget all serial numbers | |
| virtual unsigned | size () const |
| number of elements | |
| virtual void | mix () |
| mix the order of elements in the doubly linked list nodes | |
| Object * | first () const |
| first Object in the list | |
| Object * | first (const Property *) const |
| return an Object which has this property More... | |
| Object * | last () const |
| last Object | |
| Object * | find (const Number n) const |
| find Object of given serial-number (see Inventoried) | |
| Object * | findObject (long n) const |
| return Object with serial-number if ( n > 0 ) or object from the end of the list if ( n <= 0 ) More... | |
| virtual ObjectList | collect (bool(*func)(Object const *, void *), void *) const |
| collect Object for which func(obj, val) == true | |
| void | readObject (InputWrapper &, Tag, char pretag) |
| read one Object from file More... | |
| virtual void | write (OutputWrapper &out) const |
| write all Objects to file | |
Additional Inherited Members | |
Static Public Member Functions inherited from ObjectSet | |
| static void | translateObjects (ObjectList const &, Vector const &) |
| apply translation to all Objects in ObjectList More... | |
| static void | rotateObjects (ObjectList const &, Rotation const &) |
| apply rotation to all Objects in ObjectList More... | |
Public Attributes inherited from ObjectSet | |
| Inventory | inventory |
| holds pointers to the Objects in a array of Numbers | |
| NodeList | nodes |
| holds pointers to the Objects in a doubly linked list | |
| Simul & | simul |
| the Simul containing this ObjectSet | |
Protected Member Functions inherited from ObjectSet | |
| void | forget (NodeList &) |
| remove all nodes in the list from the inventory | |
| virtual void | link (Object *) |
| link the object last in the list More... | |
Static Protected Member Functions inherited from ObjectSet | |
| static ObjectList | collect (const NodeList &, bool(*func)(Object const *, void *), void *) |
| collect Object from NodeList for which func(obj, val) == true | |
| static void | write (const NodeList &, OutputWrapper &) |
| write Object in NodeList to file More... | |
| static Vector | placeObjects (ObjectList const &, Glossary &opt, const Space *) |
| place all Objects in ObjectList using the same combinations of translation/rotation More... | |
Protected Attributes inherited from ObjectSet | |
| NodeList | ice |
| a list used to store the objects temporarily while a state is imported | |
Cut all Fibers along the plane defined by n.x + a = 0. function argument func can be specified to specify which fibers can be cut. If ( func != 0 ), a fiber fib will be cut only if
| real infoDirection | ( | Vector & | G, |
| Vector & | D, | ||
| Vector & | N, | ||
| bool(*)(Fiber const *, void *) | func = 0, |
||
| void * | arg = 0 |
||
| ) | const |
Each Fiber segment is weigthed by its length.
To calculate the Nematic direction, we average the square of the imaginary number representing the direction vector.
This works in 2D by producing a nematic tensor, but in 3D this is only correct if the average direction is roughly already aligned with the X-axis.
Counts the number of fiber intersecting the plane defined by n.x + a = 0 in two categories, depending on the direction with which they cross the plane:
np = number of parallel segments ( the scalar product dir.n is strictly positive )na = number of anti-parallel segments ( dir.n < 0 )Calculate two indices characterizing the organization of the fibers along the axis n.
ixa = average { ( o - i ) }ixp = average { ( r - l ) }where:
o = number of fiber pointing outward (away from the mid-plane),i = number of fiber pointing inward (toward the mid-plane),r = number of fiber pointing right (in direction of n),l = number of fiber pointing left.The indices are averaged over planar sections taken every dm units of space, and the values for each planar section are weighted by the number of fibers. The central symmetry plane is defined by n.x+a=0, and the edges correspond to n.x+a=+/-m.
The results characterize broadly the type of fiber organization:
ixa = 1, ixp = 0: aster,ixa = -1, ixp = 0: anti-aster,ixa = 0, ixp = 1: parallel overlap,ixa = 0, ixp = 0: anti-parallel overlap (50/50).Sum tension of all the segments that intersect the plane defined by n.x + a = 0 The tension dipole along the segment is obtained from the Lagrange multiplier associated with the length of each segment. The magnitude of the dipole is multiplied by the cosine of the angle between the segment and the plane normal.
| void infoTension | ( | unsigned int & | cnt, |
| real & | ten | ||
| ) | const |
Sum tension of all the segments
The initialization options depends on the type of fiber: Fiber, DynamicFiber, ClassicFiber, Tubule.
Implements ObjectSet.
|
virtual |
The fiber is not initialized, since this is used for file input
Implements ObjectSet.
| void uniFiberSites | ( | Array< FiberBinder > & | res, |
| const real | spread | ||
| ) | const |
Set a list of Locations on the fibers, chosen randomly with uniform sampling. The number of site over a stretch of length len should be len/spread .
Condition: ( spread > 0 )